一、Struts-cofig.xml流程图
二、register.jsp页面文件
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>My JSP 'register.jsp' starting page 注册用户
三、RegisterAction文件
/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */package com.zkj.struts.action;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.UUID;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.upload.FormFile;import com.zkj.entity.Users;import com.zkj.service.UsersService;import com.zkj.struts.form.UserForm;import com.zkj.utils.UpdownUtils;/** * MyEclipse Struts Creation date: 04-25-2015 * * XDoclet definition: * * @struts.action path="/register" name="userForm" scope="request" */public class RegisterAction extends Action { /* * Generated Methods */ /** * Method execute * * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { UserForm userForm = (UserForm) form;// TODO Auto-generated method stub // 取出表單數據 String name = userForm.getName(); FormFile ff = userForm.getPhoto(); // 通過formfile我們可以獲取關於用戶上傳文件的各種信息 String sFileName = ff.getFileName(); String sFileNameNew = UpdownUtils.getUuidFileName(sFileName); int fsize = ff.getFileSize(); InputStream is = null; OutputStream os = null; try { // 取得輸入流 is = ff.getInputStream(); // 得到输出流并保存到tomcat服务器的绝对路径 String sPath = request.getSession().getServletContext() .getRealPath("/file"); os = new FileOutputStream(sPath + "\\" + sFileNameNew); int len = 0; byte[] buff = new byte[1024]; // 循环处理 while ((len = is.read(buff)) > 0) { // 读入一段,写入一段 os.write(buff, 0, len); } UsersService service = new UsersService(); try { Users user = new Users(); user.setUsername(name); user.setPhoto(sFileName); user.setPhotouuid(sFileNameNew); service.saveUser(user); } finally { service = null; } } catch (Exception e) { e.printStackTrace(); } finally { if (is != null) try { is.close(); } catch (Exception e) { } if (os != null) try { os.close(); } catch (Exception e) { } } return mapping.findForward("ok"); }}
四、list.jsp页面文件
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 3 4 5 6 7My JSP 'list.jsp' starting page 8 9 10 11 26 27
五、ListAction.java文件
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { // TODO Auto-generated method stub UsersService us = new UsersService(); try { response.setCharacterEncoding("utf-8"); request.setAttribute("arr", us.getAllUsers()); return mapping.findForward("list"); } catch (Exception e) { e.printStackTrace(); } finally { us = null; } return null; }
六、DownloadFileAction.java
/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */package com.zkj.struts.action;import java.io.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.zkj.entity.Users;import com.zkj.service.UsersService;/** * MyEclipse Struts Creation date: 04-26-2015 * * XDoclet definition: * * @struts.action */public class DownloadFileAction extends Action { /* * Generated Methods */ /** * Method execute * * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { // TODO Auto-generated method stub // 下句,控制可以显示中文 response.setContentType("text/html;charset=utf-8"); int nId = Integer.parseInt(request.getParameter("id")); InputStream is = null; OutputStream os = null; UsersService us = new UsersService(); try { Users user = us.getUserById(nId); // 得到输出流并保存到tomcat服务器的绝对路径 String sPath = request.getSession().getServletContext() .getRealPath("/file"); String sFileName = sPath + "\\" + user.getPhotouuid(); String sTrueName = user.getPhoto(); //如果源文件名中文,需要进行url编码 sTrueName = java.net.URLEncoder.encode(sTrueName, "utf-8"); //告诉浏览器,有一个文件需要下载 response.setHeader("Content-Disposition", "attachment; filename=" + sTrueName); // 取得輸入流 is = new FileInputStream(sFileName); os = response.getOutputStream(); int len = 0; byte[] buff = new byte[1024]; // 循环处理 while ((len = is.read(buff)) > 0) { // 读入一段,写入一段 os.write(buff, 0, len); } return mapping.findForward("lst"); } catch (Exception e) { e.printStackTrace(); } finally { if (is != null) try { is.close(); } catch (Exception e) { } if (os != null) try { os.close(); } catch (Exception e) { } us = null; } return null; }}
七、关键的UsersService业务处理类基于hibernate实现代码
package com.zkj.service;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.hibernate.*;import com.zkj.entity.Users;import com.zkj.sessionfactory.HibernateSessionFactory;public class UsersService { public static SessionFactory sf; static { try { // 创建sessionfactory实例 sf = HibernateSessionFactory.getSessionFactory(); } catch (Exception e) { e.printStackTrace(); } } public boolean saveUser(Users user) { boolean result = false; Session session = sf.openSession(); Transaction trans = null; try { trans = session.beginTransaction(); session.save(user); trans.commit(); } catch (Exception e) { if (trans != null) { trans.rollback(); } e.printStackTrace(); } finally { session.close(); } return result; } public ArrayListgetAllUsers() { ArrayList result = new ArrayList (); Session session = sf.openSession(); try { List list = session.createQuery("from com.zkj.entity.Users u") .list(); Iterator it = list.iterator(); while (it.hasNext()) { Users user = (Users) it.next(); result.add(user); } } catch (Exception e) { e.printStackTrace(); } finally { session.close(); } return result; } public Users getUserById(int aId) { Users result = null; Session session = sf.openSession(); try { List lst = session.createQuery( "from com.zkj.entity.Users u where u.userid=" + aId).list(); Iterator it = lst.iterator(); if (it.hasNext()) { result = (Users) it.next(); } } catch (Exception e) { e.printStackTrace(); } finally { session.close(); } return result; }}